home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 2: CDPD 1
/
Almathera Ten on Ten - Disc 2: CDPD 1.iso
/
pd
/
026-050
/
049
/
qmouse
/
qmouse.asm
< prev
next >
Wrap
Assembly Source File
|
1995-03-13
|
3KB
|
57 lines
**********************************************************************
* Program: QMOUSE - CLI "IF" test for mouse button
* Author: Robert Rethemeyer, Sunnyvale, CA
* Date: 10/05/86
* Status: RELEASED TO THE PUBLIC DOMAIN, "AS-IS"
**********************************************************************
* QMOUSE is a program to query the status of the left mouse button.
* It sets a return code of 0 if the button is NOT pressed,
* or a return code of 8 if it IS pressed. This return code can
* be used as a WARN condition in a CLI "execute" file.
*
* QMOUSE provides a way to optionally alter the way that
* "startup-sequence" operates when booting the machine.
* For example, some DOS 1.2 users load the most frequently used
* commands into RAM disk in the startup-sequence. Since that
* lessens the total memory available, some programs will not run.
* These users usually must keep a separate Workbench disk which
* does not load the RAM. Using QMOUSE and an IF statement in the
* startup-sequence, the loading of RAM can be conditionally skipped.
* Do nothing during the startup to load the RAM as usual; hold
* down the button to not load the RAM if extra RAM will be needed.
* Imaginative users may think of other uses for QMOUSE.
*
* When pressing the button, be sure the mouse pointer is off of the
* drag bar, otherwise the execution of the file pauses.
* Here is a basic example of how to use QMOUSE in the startup-sequence:
*
* echo "Workbench 1.2"
* ... etc....
* echo "<Hold down mouse-left for more RAM>"
* wait 1 sec
* QMouse
* IF NOT WARN
* echo "Loading RAM:C"
* makedir RAM:C
* path ....etc...
* copy c:dir to ram:c
* copy ....etc...
* ELSE
* echo "RAM:C not present"
* ENDIF
*
********************* Begin text of program **************************
NOLIST
INCLUDE "hardware/cia.i"
LIST
XREF _ciaa * location of 8520 chips
**********************************************************************
QMouse:
MOVEA.L #_ciaa,a3 * address of chip register
MOVE.B ciapra(a3),d0 * get register data
AND.L #CIAF_GAMEPORT0,d0 * mask out mouse button bit
EOR.B #CIAF_GAMEPORT0,d0 * invert it
LSR.B #3,d0 * shift to bit 3
RTS * return with bit as return code
END